home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / demos / 108 / modula / makelibr.mod < prev    next >
Encoding:
Modula Implementation  |  1987-02-20  |  3.1 KB  |  99 lines

  1. IMPLEMENTATION MODULE MakeLibraries;
  2.  
  3.   (*
  4.    * MAKEMAKE.  Create a MAKEFILE for a MODULA-2 program.
  5.    *
  6.    * Written by Steve Tynor, 30 September 1986.
  7.    *            UUCP  : tynor@gitpyr
  8.    *            USNAIL: 2550 Akers Mill Rd. T-2, Atlanta GA. 30339
  9.    *
  10.    * Permission is granted to distribute, copy and change this program as long
  11.    * as this notice remains...
  12.    *)
  13.  
  14.  (* NOTE: this module is implementation specific.   Substitute the library
  15.   *       modules supplied by your compiler.
  16.   *)
  17. IMPORT Strings;
  18.  
  19. CONST
  20.   NumLibraryModules = 41;
  21.  
  22. VAR
  23.   LibraryModule : ARRAY [1 .. NumLibraryModules] OF
  24.                       ARRAY [0 .. 20] OF CHAR;
  25.  
  26.   (*-----------------------------------------------------------------------*)
  27.   PROCEDURE IsALibraryModule (VAR modulename : ARRAY OF CHAR) : BOOLEAN;
  28.     (* binary search... *)
  29.   VAR
  30.     low, mid, high : CARDINAL;
  31.   BEGIN
  32.     low := 1;
  33.     high := NumLibraryModules;
  34.     WHILE low <= high DO
  35.       mid := low + (high - low) DIV 2;
  36.       CASE Strings.Compare (modulename, LibraryModule[mid]) OF
  37.         Strings.Equal : 
  38.           RETURN TRUE;
  39.       | Strings.Less :
  40.           high := mid - 1;
  41.       ELSE
  42.           low := mid + 1;
  43.       END; (* CASE *)
  44.     END; (* WHILE *)
  45.     RETURN FALSE;
  46.   END IsALibraryModule;
  47.  
  48. BEGIN
  49.    (* NOTE: we're doing a binary search, so these must be in sorted order: *)
  50.  
  51.    (* TDI supplied libraries: *)
  52.   LibraryModule [ 1] := 'AESApplications';
  53.   LibraryModule [ 2] := 'AESEvents';
  54.   LibraryModule [ 3] := 'AESForms';
  55.   LibraryModule [ 4] := 'AESGraphics';
  56.   LibraryModule [ 5] := 'AESMenus';
  57.   LibraryModule [ 6] := 'AESObjects';
  58.   LibraryModule [ 7] := 'AESResources';
  59.   LibraryModule [ 8] := 'AESScraps';
  60.   LibraryModule [ 9] := 'AESShells';
  61.   LibraryModule [10] := 'AESWindows';
  62.   LibraryModule [11] := 'ASCII';
  63.   LibraryModule [12] := 'BIOS';
  64.   LibraryModule [13] := 'Conversions';
  65.   LibraryModule [14] := 'Display';
  66.   LibraryModule [15] := 'FileSystem';
  67.   LibraryModule [16] := 'GEMAESbase';
  68.   LibraryModule [17] := 'GEMDOS';
  69.   LibraryModule [18] := 'GEMError';
  70.   LibraryModule [19] := 'GEMVDIbase';
  71.   LibraryModule [20] := 'GEMX';
  72.   LibraryModule [21] := 'InOut';
  73.   LibraryModule [22] := 'Keyboard';
  74.   LibraryModule [23] := 'LongInOut';
  75.   LibraryModule [24] := 'M2Conversions';
  76.   LibraryModule [25] := 'MathLib0';
  77.   LibraryModule [26] := 'RealInOut';
  78.     (* note : Strings.Compare thinks 'SY' < 'St'. (it just compares ASCII
  79.      *        values...) So this is not exactly alphabetical... just sorted 
  80.      *        as Strings.Compare would...
  81.      *)
  82.   LibraryModule [27] := 'SYSTEM';
  83.   LibraryModule [28] := 'Storage';
  84.   LibraryModule [29] := 'Streams';
  85.   LibraryModule [30] := 'Strings';
  86.   LibraryModule [31] := 'TermBase';
  87.   LibraryModule [32] := 'Terminal';
  88.   LibraryModule [33] := 'TextIO';
  89.   LibraryModule [34] := 'VDIAttribs';
  90.   LibraryModule [35] := 'VDIControls';
  91.   LibraryModule [36] := 'VDIEscapes';
  92.   LibraryModule [37] := 'VDIInputs';
  93.   LibraryModule [38] := 'VDIInquires';
  94.   LibraryModule [39] := 'VDIOutputs';
  95.   LibraryModule [40] := 'VDIRasters';
  96.   LibraryModule [41] := 'XBIOS';
  97.  
  98. END MakeLibraries.
  99.